/*! \file IMceIrDrv.h holds the interface for the hardware communication */
#ifndef __IMCE_IR_DRV_H_INCLUDED__
#define __IMCE_IR_DRV_H_INCLUDED__

#include <boost/shared_ptr.hpp>
#include "MceTypes.h"
#include <string>

/*! The interface for the hardware interaction. */
class IMceIrDrv
{
public:
	virtual ~IMceIrDrv() {}
	virtual void init () = 0;
	virtual bool isConnected() = 0;
	virtual bool transmit ( PtrSize * command, size_t commandLen, PtrSize transmitMask, PtrSize period ) = 0;
	virtual bool getTransmitMask ( PtrSize & transmitMask ) = 0;
	virtual std::string getPath ( ) = 0 ;
};
typedef boost::shared_ptr<IMceIrDrv> IMceIrDrvPtr;

#endif